package com.woniuxy.system.interceptor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * 这个类是一个自定义的配置类，它实现了WebMvcConfigurer接口。
 * 通过实现这个接口，你可以对Spring MVC的配置进行定制。
 */
@Configuration
public class MvcConfig implements WebMvcConfigurer {

    @Autowired
    private LoginInterceptor loginInterceptor;

    /**
     * 注册拦截器
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 放行的资源：登录、置换token、swagger
        List<String> whitelist = new ArrayList<>();
        Collections.addAll(whitelist,"/manager/login","/token/refresh");
        // 拦截器配置
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**")    // 拦截的资源，拦截所有
                .excludePathPatterns(whitelist);    // 放行的资源
    }
}



